/* 
 * File:   Sphere.h
 * Author: brady
 *
 * Created on February 2, 2011, 7:19 PM
 */
#include "Shape.h"
#include <math.h>

#ifndef SPHERE_H
#define	SPHERE_H



class Sphere : public Shape {
public:
    Sphere();
    Sphere(Vector3D origin, double radius);
    virtual ~Sphere();
    BoundingVolumeNode GetBoundingVolume();
    bool TestIntersect(Ray &ray, double tmin, double tmax, HitStruct& hitStruct);
//    const Vector3D SurfaceNormal(Ray &ray);
    void SetShader(Shader* shader){this->shader = shader;}
    Shader* GetShader(){return this->shader;}
    double GetSortValue(int sortBy);
private:
    double Radius;
    
};

#endif	/* SPHERE_H */

